home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0257 / doc.exe / ADRESSEN.DOC < prev    next >
Text File  |  1992-02-06  |  4KB  |  113 lines

  1.   ─────────────────────────────────────────────────────────────────────────────
  2.   Dokumentation zur Datei: ADRESSEN.INC
  3.  
  4.   ─────────────────────────────────────────────────────────────────────────────
  5.    
  6.     ADRESSEN.INC - Routinen zur Bearbeitung von (FAR-)Adressen
  7.                    (für den Assembler A86)
  8.    
  9.                    (c) Bernd Schemmer 1990 - 1992
  10.                    Letzter Update: 04.02.1992
  11.    
  12.     ■ Beschreibung:
  13.     ---------------
  14.     Alle Routinen (außer Make20BitValue) normalisieren die Adressen.
  15.     Eine normalisierte Adresse ist gekennzeichnet durch einen
  16.     Offset-Anteil zwischen 00h und 0Fh.
  17.     Die Routinen benutzen das Register AX als Arbeitsregister.
  18.    
  19.    
  20.     ■ Routinen:
  21.     -----------
  22.     NormalisiereES_DI     - Normalisiert die Adresse in ES:DI
  23.     NormalisiereDS_SI     - Normalisiert die Adresse in DS:SI
  24.     VergleicheAdressen    - Vergleicht die Adressen in DS:SI und ES:DI
  25.     AddOffsetToES_DI      - Addiert einen Offset auf die Adresse in ES:DI
  26.     AddOffsetToDS_SI      - Addiert einen Offset auf die Adresse in DS:SI
  27.     Make20BitValue        - Rechnet eine 32-Bit-Adresse in eine 20-Bit-Zahl
  28.                             um
  29.     Make32BitValue        - Rechnet eine 20-Bit-Zahl in eine 32-Bit-Adresse
  30.                             um
  31.    
  32.    
  33.     ----------------------------
  34.     Make32BitAdress
  35.    
  36.     Funktion: Konvertiert eine 20-Bit-Zahl in eine Adresse aus Segment
  37.               und Offset
  38.    
  39.     Eingabe:  DX:AX = 20-Bit-Zahl    (Aufbau: 000n:nnnn)
  40.    
  41.     Ausgabe:  DX:AX = 32-Bit-Adresse (Aufbau: ssss:000o)
  42.    
  43.     ----------------------------
  44.     Make20BitValue
  45.    
  46.     Funktion: Konvertiert eine Adresse aus Segment und Offset in
  47.               eine 20-Bit-Zahl
  48.    
  49.     Eingabe:  DX:AX = Adresse     (ssss:oooo)
  50.    
  51.     Ausgabe:  DX:AX = 20-Bit-Zahl (000n:nnnn)
  52.    
  53.     ----------------------------
  54.     NormalisiereDS_SI
  55.    
  56.     Funktion:  Normalisiert die Adresse in den Registern DS:SI
  57.    
  58.     Eingabe:   DS:SI = Adresse
  59.    
  60.     Ausgabe:   DS:SI = normalisierte Adresse
  61.                AX = neues Segment
  62.                (keine Fehlerüberprüfung)
  63.    
  64.     ----------------------------
  65.     NormalisiereES_DI
  66.    
  67.     Funktion:  Normalisiert die Adresse in den Registern ES:DI
  68.    
  69.     Eingabe:   ES:DI = Adresse
  70.    
  71.     Ausgabe:   ES:DI = normalisierte Adresse
  72.                AX = neues Segment
  73.                (keine Fehlerüberprüfung)
  74.    
  75.     ----------------------------
  76.     VergleicheAdressen
  77.    
  78.     Funktion:  Vergleicht die Adressen in den Registern DS:SI und ES:DI
  79.    
  80.     Eingabe:   DS:SI = erste Adresse
  81.                ES:DI = zweite Adresse
  82.    
  83.     Ausgabe:   DS:SI und ES:DI werden normalisiert
  84.                Flags wie sie nach dem Vergleich CMP DS:SI,ES:DI wären
  85.                (keine Fehlerüberprüfung)
  86.    
  87.     ----------------------------
  88.     AddOffsetToDS_SI
  89.    
  90.     Funktion:  Addiert den Wert aus BX auf die Adresse in DS:SI
  91.    
  92.     Eingabe:   DS:SI = Adresse
  93.                BX    = zu addierender Offset
  94.    
  95.     Ausgabe:   CF = 0 ->> okay
  96.                           DS:SI = neue Adresse (normalisiert)
  97.                CF = 1 ->> Fehler
  98.                           DS:SI unverändert
  99.    
  100.     ----------------------------
  101.     AddOffsetToES_DI
  102.    
  103.     Funktion:  Addiert den Wert aus BX auf die Adresse in ES:DI
  104.    
  105.     Eingabe:   ES:DI = Adresse
  106.                BX = zu addierender Offset
  107.    
  108.     Ausgabe:   CF = 0 ->> okay
  109.                           ES:DI = neue Adresse (normalisiert)
  110.                CF = 1 ->> Fehler
  111.                           ES:DI unverändert
  112.    
  113.